/**
 * 通用文件下载方法
 * @param data 文件数据
 * @param filename 文件名
 * @param mimeType 文件MIME类型
 */
export const downloadFile = (
  data: BlobPart,
  filename: string,
  mimeType: string = 'application/octet-stream'
) => {
  // 创建 Blob 对象
  const blob = new Blob([data], { type: mimeType });

  // 创建下载链接
  const url = window.URL.createObjectURL(blob);

  // 创建一个临时的 a 标签用于下载
  const link = document.createElement('a');
  link.href = url;
  link.download = filename;

  // 触发下载
  document.body.appendChild(link);
  link.click();

  // 清理
  document.body.removeChild(link);
  window.URL.revokeObjectURL(url);
};

// 常用的 MIME 类型
export const MIME_TYPES = {
  WORD: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
  PDF: 'application/pdf',
  EXCEL: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
  CSV: 'text/csv',
} as const;